package com.geeke.sys.entity;

import javax.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.geeke.common.persistence.DataEntity;
import com.google.common.collect.Lists;
import java.util.*;

/**
 * 字典类型表Entity
 * 
 * 重要说明：
 *   如果表中包含`name`或`remarks`字段，必须在实体类中显式定义`name`或`remarks`属性。
 *   这些字段的属性已经包含在基类中，无需在实体类定义：`id`, `createBy`, `createDate`, `updateBy`, `updateDate`, `delFlag`, `parent`, `ids`, `sort`
 */
public class DictType extends DataEntity<DictType> {

    private static final long serialVersionUID = 1L;
    
    // Constructor
    public DictType() {
        super();
    }
    
    public DictType(String id) {
        super(id);
    }

    // 编号
    @Length(min=1, max=64, message="编号长度必须介于1和64之间")
    @NotBlank(message="编号不能为空")
    private String code; // 编号
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }

    // 名称
    @Length(min=1, max=128, message="名称长度必须介于1和128之间")
    @NotBlank(message="名称不能为空")
    private String name; // 名称
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    // 是否系统级
    @Length(min=1, max=1, message="是否系统级长度必须介于1和1之间")
    @NotBlank(message="是否系统级不能为空")
    private String isSystem = "0"; // 是否系统级
    public String getIsSystem() {
        return isSystem;
    }
    public void setIsSystem(String isSystem) {
        this.isSystem = isSystem;
    }

    // 备注信息
    @Length(min=0, max=255, message="备注信息长度必须介于0和255之间")
    private String remarks; // 备注信息
    public String getRemarks() {
        return remarks;
    }
    public void setRemarks(String remarks) {
        this.remarks = remarks; 
    }

    // 从表列表
    private List<DictItem> dictItemList = Lists.newArrayList();
    public List<DictItem> getDictItemList() {
        return dictItemList;
    }
    public void setDictItemList(List<DictItem> dictItemList) {
        this.dictItemList = dictItemList;
    }

    @Override
    public String getTableAlias() {
        return "dictType";
    }
    
} 